TabBarController এবং SplitViewController ব্যবহার

Mobile App Development - আইওএস ডেভেলপমেন্ট (iOS) - Navigation এবং Multi-View Applications
286

UIKit এ UITabBarController এবং UISplitViewController ব্যবহার করে আমরা iOS অ্যাপ্লিকেশনে একাধিক ভিউ কন্ট্রোলারকে সুসংগঠিত ও সুগঠিতভাবে উপস্থাপন করতে পারি। এই কন্ট্রোলারগুলো সাধারণত বড় অ্যাপ্লিকেশনগুলোতে ব্যবহৃত হয় যেখানে ব্যবহারকারীদের বিভিন্ন বিভাগ বা বৈশিষ্ট্যে দ্রুত নেভিগেট করতে হয়। নিচে প্রতিটি কন্ট্রোলার এবং তাদের ব্যবহারের পদ্ধতি বিস্তারিতভাবে ব্যাখ্যা করা হলো:

১. UITabBarController

UITabBarController হলো একটি কন্টেইনার ভিউ কন্ট্রোলার যা ট্যাব আকারে একাধিক ভিউ কন্ট্রোলারকে প্রদর্শন করে। এটি সাধারণত নেভিগেশন সহজ এবং সংগঠিত করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, সোশ্যাল মিডিয়া অ্যাপ বা ই-কমার্স অ্যাপ যেখানে হোম, সার্চ, প্রোফাইল, নোটিফিকেশন ইত্যাদি বিভাগ থাকে।

UITabBarController ব্যবহার করে অ্যাপ্লিকেশন তৈরি

নিচে একটি উদাহরণ দেওয়া হলো যেখানে দুইটি ভিউ কন্ট্রোলার একটি UITabBarController এর মধ্যে যুক্ত করা হচ্ছে।

import UIKit

class HomeViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        title = "Home"
        tabBarItem = UITabBarItem(tabBarSystemItem: .favorites, tag: 0)
    }
}

class SettingsViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .lightGray
        title = "Settings"
        tabBarItem = UITabBarItem(tabBarSystemItem: .more, tag: 1)
    }
}

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }

        let window = UIWindow(windowScene: windowScene)
        let homeVC = HomeViewController()
        let settingsVC = SettingsViewController()

        let tabBarController = UITabBarController()
        tabBarController.viewControllers = [homeVC, settingsVC]

        window.rootViewController = tabBarController
        self.window = window
        window.makeKeyAndVisible()
    }
}

ব্যাখ্যা:

  • HomeViewController এবং SettingsViewController: দুটি ভিউ কন্ট্রোলার তৈরি করা হয়েছে এবং তাদের জন্য ট্যাব আইটেম সেট করা হয়েছে (tabBarSystemItem দিয়ে)।
  • UITabBarController: আমরা একটি UITabBarController তৈরি করেছি এবং এর viewControllers প্রোপার্টিতে দুইটি ভিউ কন্ট্রোলার অ্যাসাইন করেছি।
  • SceneDelegate: UITabBarController কে রুট ভিউ কন্ট্রোলার হিসেবে সেট করা হয়েছে।

২. UISplitViewController

UISplitViewController সাধারণত বড় স্ক্রিনের জন্য (যেমন: iPad) ব্যবহৃত হয় এবং এটি একটি মাস্টার-ডিটেইল (Master-Detail) ইন্টারফেস প্রদান করে। এটি এমন অ্যাপ্লিকেশনগুলোতে ব্যবহৃত হয় যেখানে ডিটেইল কন্টেন্ট প্রদর্শনের জন্য একটি নির্দিষ্ট সেকশন নির্বাচন করা হয়, যেমন: মেইল অ্যাপ।

UISplitViewController ব্যবহার করে অ্যাপ্লিকেশন তৈরি

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি UISplitViewController ব্যবহার করে মাস্টার এবং ডিটেইল ভিউ কন্ট্রোলার সেটআপ করা হচ্ছে।

import UIKit

class MasterViewController: UITableViewController {
    var items = ["Item 1", "Item 2", "Item 3"]

    override func viewDidLoad() {
        super.viewDidLoad()
        title = "Master"
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") ?? UITableViewCell(style: .default, reuseIdentifier: "Cell")
        cell.textLabel?.text = items[indexPath.row]
        return cell
    }

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let detailVC = DetailViewController()
        detailVC.itemText = items[indexPath.row]
        showDetailViewController(detailVC, sender: self)
    }
}

class DetailViewController: UIViewController {
    var itemText: String?

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        title = "Detail"

        let label = UILabel()
        label.text = itemText
        label.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(label)

        NSLayoutConstraint.activate([
            label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            label.centerYAnchor.constraint(equalTo: view.centerYAnchor)
        ])
    }
}

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }

        let window = UIWindow(windowScene: windowScene)
        let masterVC = MasterViewController()
        let masterNavVC = UINavigationController(rootViewController: masterVC)

        let detailVC = DetailViewController()
        let detailNavVC = UINavigationController(rootViewController: detailVC)

        let splitVC = UISplitViewController(style: .doubleColumn)
        splitVC.viewControllers = [masterNavVC, detailNavVC]

        window.rootViewController = splitVC
        self.window = window
        window.makeKeyAndVisible()
    }
}

ব্যাখ্যা:

  • MasterViewController: একটি টেবিল ভিউ কন্ট্রোলার, যা একটি লিস্ট দেখায়। লিস্টের একটি আইটেম সিলেক্ট করলে এটি DetailViewController এ নেভিগেট করে।
  • DetailViewController: ডিটেইল ভিউ কন্ট্রোলার, যা সিলেক্ট করা আইটেমের বিস্তারিত প্রদর্শন করে।
  • UISplitViewController: আমরা UISplitViewController তৈরি করে মাস্টার এবং ডিটেইল ভিউ কন্ট্রোলারকে এতে যুক্ত করেছি। এটি একটি doubleColumn স্টাইলের UISplitViewController ব্যবহার করছে, যা iPad এর মতো বড় স্ক্রিনে ভালোভাবে কাজ করে।
  • SceneDelegate: UISplitViewController কে রুট ভিউ কন্ট্রোলার হিসেবে সেট করা হয়েছে।

UITabBarController এবং UISplitViewController ব্যবহারের সেরা চর্চা

  1. UITabBarController ব্যবহার করুন: অ্যাপ্লিকেশনে একাধিক বিভাগ বা সেকশন থাকলে, যেগুলো স্বাধীনভাবে কাজ করে, সেগুলোকে সংগঠিত করতে UITabBarController ব্যবহার করুন।
  2. UISplitViewController ব্যবহার করুন: মাস্টার-ডিটেইল লেআউট প্রয়োজন হলে, বিশেষ করে বড় স্ক্রিনের জন্য (যেমন: iPad), UISplitViewController ব্যবহার করা উচিত।
  3. NavigationController এর সাথে সংযুক্ত করুন: Tab Bar এবং Split View এর ভিউ কন্ট্রোলারগুলোতে নেভিগেশন ব্যবহারের জন্য UINavigationController যুক্ত করুন।
  4. Adaptive Layout ব্যবহার করুন: UISplitViewController ব্যবহার করে লেআউটকে অ্যাডাপ্টিভ রাখুন যাতে এটি বড় এবং ছোট উভয় স্ক্রিনে সঠিকভাবে কাজ করে।

উপসংহার

UITabBarController এবং UISplitViewController ব্যবহার করে iOS অ্যাপ্লিকেশনে মাল্টি-ভিউ ইন্টারফেস তৈরি করা সহজ এবং কার্যকরী। UITabBarController একটি সরল এবং কার্যকর পদ্ধতি প্রয়োগ করে, যেখানে UISplitViewController বড় স্ক্রিনে মাস্টার-ডিটেইল লেআউট প্রদর্শন করার জন্য আদর্শ। এগুলো ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশনকে আরও সুগঠিত এবং ইন্টারেক্টিভ করে তোলা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...